Repository navigation
Conversation
Exercise browser Tab traversal and the active stop band on twelve reachable shell routes with D1 enabled and other areas disabled. Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /leitstand Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /leitstand/verlauf Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /leitstand/betrieb Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /leitstand/klassisch Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /leitstand/werkzeuge Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /leitstand/terminal Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /einstellungen Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /einstellungen/mcp Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /einstellungen/benachrichtigungen Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /einstellungen/projekt Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /einstellungen/klassisch Test-First: src/shell/acceptance/keyboard.test.ts::Tab enters the shell and Shift-Tab returns at /start Test-First: src/shell/acceptance/stopband.test.tsx::covers every scope registry path with D1 on by default Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /leitstand Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /leitstand/verlauf Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /leitstand/betrieb Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /leitstand/klassisch Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /leitstand/werkzeuge Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /leitstand/terminal Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /einstellungen Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /einstellungen/mcp Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /einstellungen/benachrichtigungen Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /einstellungen/projekt Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /einstellungen/klassisch Test-First: src/shell/acceptance/stopband.test.tsx::renders the active StopBand and stop control at /start
This was referenced Oct 15, 2026
This was referenced Oct 16, 2026
Owner
Author
|
Closed by Root on 2026-10-18 under Elias's focus stop (decision A, 18.10.): no commit for >48 h, and the v2 shell acceptance/click checklist must be redone against the new UI (single-author design system, in progress). Branch is kept; reopen or re-cut after the new UI lands. |
This was referenced Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dieser PR ergänzt Tastatur- und Not-Aus-Tests für zwölf erreichbare Routen der Hülle und des Leitstands.
Die lokalen Prüfungen bestehen, aber Kriterium 4 ist auf der vorgegebenen Basis nicht erfüllt, weil dort der Zustandszähler samt Obergrenze fehlt.
Die Bildabnahme, die Release-Prüfung und die persönliche Klick-Abnahme bleiben beim Nutzer.
Report
Package: V2-ACC1b · Operator: UMSETZEN · Review tier: B, as commissioned.
Candidate:
666c0a9f16c571c59d6c40ecc6234d903607d1fe.Base:
claude/v2-scope-1-sidebar/ #1499 at91cba1f3e3bbef612ad7a0098c4c330fd3c6bbca, itself stacked on #1484.Observed: 2026-10-15, Linux. Acceptance applies to this stack, not current main.
Goal, scope and changes
Bounded worker goal: test shell + Leitstand with D1 on, document criteria 1/2-list/3/4/5/6-shell/8/9, and hand over this draft. Parent: v2.0 narrow acceptance, section 10.1 of
docs/plan/v2.0/plan.md; execution owner: assigned V2-ACC1b worker; acceptance/integration owner: Root.Native
get_goalreturned no goal initially;create_goalreturned this bounded goal as active, and the milestoneget_goalconfirmed it active. The parent acceptance remains open because criterion 4 fails.src/shell/acceptance/; no product change.weitere_bereicheoff. They check entry into the shell and return between the two visible navigation links, at 1440×900. Vite uses an allocated local port; browser and server are awaited and closed by the test run.routes.tsis the unavoidable 15-line test-only route fixture, used to check all registry paths and document the extra mounted paths. No helper outside the assigned directory, dependencies, screenshots, Rust, seams, flag or route-registry changes.Kriterium → Befehl → Exit-Code → Ergebnis
npx --no-install vitest run src/shell src/screens/leitstand; store proof inbash scripts/ci/gates.sh lane prepushnpx --no-install vitest run src/shell/acceptance --reporter=verbose; source inspection ofsrc/shell/routes.tsand mounted linksnode scripts/contrast-check.mjs;npx --no-install vitest run src/shell/acceptance --reporter=verbosescripts/ci/contrast-check.mjson this base).node scripts/ci/ratchet.mjs check;rg -c -- '--state-' src/styles.cssscripts/ci/ratchet.mjs:8registers only four unrelated counters, andscripts/ci/ratchets.json:1has no state ceiling.src/styles.css:215still defines legacy state colors independently. Current scan: 164 matching lines, 181 occurrences; state-alias counter and ceiling: absent, not zero. No fix attempted.npx --no-install vitest run src/i18nhardcoded.test.ts, 15 tests.npx --no-install vitest run src/shell/acceptance --reporter=verbosebash scripts/ci/gates.sh lane prepushrg -n 'continuousScheduler' src-tauri/src/main.rs src-tauri/src/store/continuous.rs src-tauri/src/api/tests/resume_closed_tests.rs;git diff -G continuousScheduler "$(git merge-base origin/main HEAD)" HEAD -- src src-taurisrc-tauri/src/main.rs:2741has"continuousScheduler": false; store effective limits are also false; the existing test asserts false. The stack diff is empty for this property, and the feature flag registry has no scheduler switch.Criterion 4 uses the approved wording: „Keine zweite Definition der sechs Zustände außerhalb von src/design/, außer den gezählten Alt-Aliasen; die Obergrenze sinkt nur.“ The required #1494 change is absent from the prescribed predecessor snapshot. The existing ratchet prints
ts-suppress: 0 = 0,eslint-disable: 0 = 0,rust-allow: 221 = 221,ts-any: 2 = 2. These are not state counters. Root must arrange an updated predecessor containing the state ratchet, then commission a new acceptance run; this package does not merge main or modify the predecessor.Data-source evidence and test boundaries
src-tauri/src/web_interface.rs::the_real_backend_puts_live_workers_on_the_board(:1851), observed PASS in the full Rust suite. It opens a real Store, inserts workers, starts the real board backend, and checks/board.jsonfor project/worker/state data.src-tauri/src/main.rs:1689(get_board_state) readsstore.list_workersand passes those workers to the status engine.src/screens/leitstand/LeitstandRoute.tsxusesuseBoardanduseQuestions.src/screens/leitstand/LeitstandRoute.test.tsx::shows the cards and the Braucht dich list from the real board and question data at /leitstand. Despite its name, this frontend test mocks Tauri invoke. It proves rendering/wiring, not a real Store-to-DOM end-to-end run; the separate native test supplies the real-store evidence.Image inventory for V2-SHOT-BASE
Capture each path in light and dark, 1440×900: 24 images total, outside Git. Titles below are navigation/view labels, not claims that a screenshot was inspected. Include the registry paths exposed by the palette and the extra paths reachable from mounted screens.
/leitstand/leitstand/verlauf/leitstand/betrieb/leitstand/klassisch/leitstand/werkzeuge/leitstand/terminal?worker=<id>/einstellungen/einstellungen/mcp/einstellungen/benachrichtigungen/einstellungen/projekt/einstellungen/klassisch/startVerlauf is exposed with the scope flag off:
src/shell/routes.ts:26registers it under Leitstand,:51keeps that entire area in scope, andsrc/shell/header/CommandPalette.tsx:15includes every tab of each visible area. It is not a tab in the new Leitstand's own tab row (src/screens/leitstand/LeitstandRoute.tsx:23). Its direct path renders the legacy panel according tosrc/shell/mount/ShellMount.tsx:61. The distinction between registry labels and the mounted legacy content needs visual inspection; this PR claims neither a new Verlauf screen nor a visual match.Regression probe and additional evidence
The uncommitted probe removed the first sidebar link from keyboard navigation with
first.evaluate(element => element.setAttribute("tabindex", "-1"))immediately before the first Tab. Product files were never modified. The probe was restored before committing.npx --no-install vitest run src/shell/acceptance/keyboard.test.ts -t 'Tab enters the shell and Shift-Tab returns at /leitstand$', probe appliedtoBeFocused, expected focused, received inactive; locator resolved to the link withtabindex="-1".RF_BASE_BRANCH=claude/v2-scope-1-sidebar bash scripts/ci/red-first.shred-first: OK. Base override is necessary for this stacked PR.npm run typechecknpm run buildnpm run lintgit diff --checkbash scripts/ci/secret-scan.shgit push -u origin codex/v2-acc1bgit ls-remote origin refs/heads/codex/v2-acc1bThe early trailer preflight rejected generated test titles because it requires literal names in the source. Tests were given explicit names before committing, and the final preflight and full red-first run passed. No pushed history was rewritten.
NICHT ABGEDECKT
Verbatim block from the successful prepush run:
Windows runs in the merge queue. The separate build and twelve browser keyboard cases above were run, but they do not prove every browser-smoke scenario or every focus trap inside dialogs/content. No screenshot comparison, live desktop launch, real worker dispatch, server stop, release/update drill, key backup, or full Store-to-DOM test was performed. Criteria 2 (images), 11 and 13 remain with the user. Provider quota/model observation and the
lage-jetztmirror were unavailable; the read-only start check reported the missing quota input. RAM/build limits were observed and the worker waited for a free build slot.Reviews, disposition and handover
Review: ausstehend (Stufe B). Author family: OpenAI; Root commissions one reviewer outside OpenAI. This worker did not commission a review, mark ready, set
review-ok, or enqueue.scripts/ci/ratchet.mjs:8,scripts/ci/ratchets.json:1,src/styles.css:215Delivery state: implemented, locally tested and pushed; draft for review, not accepted, merged or released. The acceptance table deliberately remains FAIL for criterion 4. Merge order remains #1484 → #1499 → this PR; Root retargets after predecessor merges. Fabrik remains a separate package. No architecture allowlist changes or new licenses/dependencies.
Review disposition (Root, round 1)
Tier B (tests only, author family OpenAI / Codex gpt-6-astra). Reviewer google/gemini-3.8-flash (Google) at head
666c0a9f, diff against the stacked baseclaude/v2-scope-1-sidebar: REQUEST_CHANGES with 4 findings. Root adjudication at file:line:route.tabs.mapmay crash on routes without tabs (stopband.test.tsx:21)ShellRoute.tabsis non-optional (src/shell/routes.ts:17) and defaults to[](:21).keyboard.test.ts:40-42).g-shellvisible and.g-shell-contentnon-empty first (:33-34); the nav is part of the shell. 12/12 green on Linux plus the push-hook rerun.it(...)instead ofit.eachsetup-linux(playwrightinput defaulttrue,.github/actions/setup-linux/action.yml:20-23,129-131) and insetup-windows-release(action.yml:54); the Windows lane does not runfe-test(gates.sh --list: fe-test = prepush, branchpush, linux, release).No accepted finding and no open high. Review gate tier B passed at
666c0a9f.Criterion 4 on the integrated result (Root, BELEGEN)
The FAIL above is a property of the stacked snapshot, not of the product: #1494 (state ratchet) is on
main, not on the stack base. A local scratch merge oforigin/main(9938420 at the time) into666c0a9f(merge commit7f3df745, clean, never pushed), thennode scripts/ci/ratchet.mjs check→ exit 0,state-token: 191 = 191(ceilingscripts/ci/ratchets.json:6). The merge queue re-runs the gates on top ofmainfor each PR of the stack, so criterion 4 is checked again at merge time. Root accepts criterion 4 on that basis; no new acceptance run needed.Merge order: #1484 → #1499 → this PR (Root retargets each to
mainafter its base merges).